function climbStairs(n) {
  if (n <= 2) {  // 当n小于等于2时，有n种不同的爬楼梯方法
    return n;
  }
  let a = 1, b = 2, c;
  for (let i = 3; i <= n; i++) {  // 使用动态规划，计算n步爬楼梯的不同方法数
    c = a + b;
    a = b;
    b = c;
  }
  return c;
}

// 示例
console.log(climbStairs(2));  // 2，因为有两种不同的爬楼梯方法：一次爬1级或者一次爬2级
console.log(climbStairs(3));  // 3，因为有三种不同的爬楼梯方法：一次爬1级、一次爬2级、或者一次爬1级再一次爬2级
console.log(climbStairs(4));  // 5，因为有五种不同的爬楼梯方法：一次爬1级、一次爬2级、一次爬1级再一次爬2级、一次爬2级再一次爬2级、或者一次爬1级再一次爬1级再一次爬2级
